package com.zhuiyun.educations.api.order.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.io.Serializable;

/**
 * @ClassName order
 * @Description TODO 订单管理
 * @Author ys
 * @Date 2023/6/19 19:35
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Table(name="order")
public class Order implements Serializable {
    private static final long serialVersionUID = -41698723204466373L;
    /**
     * 主键id（杨珅）
     */
    @Id
    private Integer id;
    /**
     * 外键id（前端用户id）

     */
    private Integer userId;
    /**
     * 订单状态（0:待支付，1：已支付，2：未支付）

     */
    private Integer orderState;
    /**
     * 订单编号

     */
    private String orderNumber;
    /**
     * 支付方式

     */
    private String paymentType;
    /**
     * 支付金额

     */
    private Double payPrice;
    /**
     * 删除标识（0:显示/1:删除）

     */
    private Integer delFlag;
    /**
     * 外键id（课程管理id）

     */
    private Integer courseId;
    /**
     * 创建时间

     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date createTime;
    /**
     * 创建时间

     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date closeTime;
    /**
     * 修改时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date updateTime;
    /**
     * 用户名称
     */
    @Transient
    private String userName;
    /**
     * 登录名称
     */
    @Transient
    private String loginName;
    /**
     * 课程名称
     */
    @Transient
    private String courseTitle;
    /**
     * 剩余时间
     */
    @Transient
    private String residueTime;
}

